import { NgModule } from '@angular/core'
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { TableModule } from 'primeng/table';
import { ScrollPanelModule } from 'primeng/scrollpanel';
import {
    TreeModule, BreadcrumbModule, ToolbarModule, InputTextModule, DialogModule, RadioButtonModule,
    InputTextareaModule, PanelModule, ButtonModule, AutoCompleteModule, CalendarModule,
    CarouselModule, TabViewModule, PanelMenuModule, SharedModule, ToggleButtonModule,
    ConfirmDialogModule, ConfirmationService, DropdownModule, DragDropModule, TooltipModule,
    CheckboxModule, InputSwitchModule, ColorPickerModule, LightboxModule, DataGridModule
} from 'primeng/primeng';
import { QkSharedModule } from '../common/module/qkshare.module';
import { FileUploadModule } from 'primeng/fileupload';
import { TaskListConfigComponent } from './config/tasklist-cfg.component';
import { BaseInfoComponent } from './config/baseinfo.component';
import { FieldsComponent } from './config/fields.component';
import { MenusComponent } from './config/menus.component';
import { PartsComponent } from './config/parts.component';
import { TabsComponent } from './config/tabs.component';
import { TaskListAddComponent } from './config/tasklist-add.component';
import { TaskMenuComponent } from './config/menus/taskmenu.component';
import { TaskMenuGroupComponent } from './config/menus/taskmenu-group.component';
import { TaskTabGroupComponent } from './config/tabs/tasktab-group.component';
import { TaskTabComponent } from './config/tabs/tasktab.component'; 
import { TaskListComponent } from './tasklist/tasklist.component';
import { TaskListSearchComponent } from './tasklist/tasklist-search.component';
import { TransitComponent } from './tasklist/menus/transit/transit.component';
import { RollbackComponent } from './tasklist/menus/rollback/rollback.component';
import { FinishComponent } from './tasklist/menus/finish/finish.component';
import { CancelComponent } from './tasklist/menus/cancel/cancel.component'; 
import { TaskListMenuComponent } from './tasklist/menus/tasklist-menu.component'; 
import { TaskListTabComponent } from './tasklist/tabs/tasklist-tab.component'; 
import { TabProcessComponent } from './tasklist/tabs/process/tab-process.component';
import { TabMediaComponent } from './tasklist/tabs/media/tab-media.component';
import { MediaUploadComponent } from './tasklist/tabs/media/media-upload.component';
import { TabFormComponent } from './tasklist/tabs/form/tab-form.component';
import { TabFormPrintComponent } from './tasklist/tabs/form/tab-form-print.component';
import { FormShareModule } from '../form/formshare.module';
@NgModule({
    imports: [
        FormsModule,
        ReactiveFormsModule,
        CommonModule,
        TreeModule,
        BreadcrumbModule,
        ToolbarModule,
        PanelModule,
        ButtonModule,
        AutoCompleteModule,
        InputTextModule,
        InputTextareaModule,
        TabViewModule,
        CarouselModule,
        PanelMenuModule,
        SharedModule,
        ConfirmDialogModule,
        DialogModule,
        CalendarModule,
        DropdownModule,
        DragDropModule,
        TooltipModule,
        CheckboxModule,
        InputSwitchModule,
        ColorPickerModule,
        LightboxModule,
        DataGridModule,
        RadioButtonModule,
        ToggleButtonModule,
        ScrollPanelModule,
        QkSharedModule,
        TableModule,
        FileUploadModule,
        FormShareModule
    ],
    declarations: [
        TaskListConfigComponent,
        BaseInfoComponent,
        FieldsComponent,
        MenusComponent,
        PartsComponent,
        TabsComponent,
        TaskListAddComponent,
        TaskMenuComponent,
        TaskMenuGroupComponent,
        TaskTabGroupComponent,
        TaskTabComponent,
        TaskListComponent,
        TaskListSearchComponent,
        TransitComponent,
        RollbackComponent,
        FinishComponent,
        CancelComponent,
        TaskListMenuComponent,
        TaskListTabComponent,
        TabProcessComponent,
        TabMediaComponent,
        MediaUploadComponent,
        TabFormComponent,
        TabFormPrintComponent
    ],
    entryComponents: [
        TaskListAddComponent,
        TaskMenuGroupComponent,
        TaskTabGroupComponent,
        TransitComponent,
        RollbackComponent,
        FinishComponent,
        CancelComponent,
        TabProcessComponent,
        TabMediaComponent,
        MediaUploadComponent,
        TabFormComponent,
        TabFormPrintComponent
    ],
    exports: [
        TaskListConfigComponent,
        BaseInfoComponent,
        FieldsComponent,
        MenusComponent,
        PartsComponent,
        TabsComponent,
        TaskListAddComponent,
        TaskMenuComponent,
        TaskMenuGroupComponent,
        TaskTabGroupComponent,
        TaskTabComponent,
        TaskListComponent,
        TaskListSearchComponent,
        TaskListMenuComponent,
        TaskListTabComponent,
        TabProcessComponent,
        TabMediaComponent,
        MediaUploadComponent,
        TabFormComponent,
        TabFormPrintComponent
    ],
    providers: [
        ConfirmationService,
    ]
})
export class TaskListShareModule { }
